        TITL DAI FIRMWARE CF02-D100  V1.1
        ORG   :CF02
*
*
*
**************************************
* POINTERS TO ROUTINES BASICCOMMANDS *
**************************************
*
* This table, with base at CF00, gives the
* addresses of the routines for execution of the
* Basic statements.
* The offset from baseaddress CF00 can be found
* by adding 2x TOKEN to the base address.
* Address indicates begin subroutine (ROM bank 0).
*
* The number given between brackets is the TOKEN.
*
CITAB   DBL   :DEB8     (81) NEW
        DBL   :DED5     (82) CONT
        DBL   :DF03     (83) STOP
        DBL   :DF0C     (84) END
        DBL   :E401     (85) RESTORE
        DBL   :DF4C     (86) RETURN
        DBL   :DF9E     (87) RUN
        DBL   :DFBA     (88) RUN <linenumber>
        DBL   :DF63     (89) GOTO
        DBL   :DF2A     (8A) GOSUB
        DBL   :D274     (8B) LOAD
        DBL   :D23D     (8C) SAVE
        DBL   :D2C3     (8D) CHECK
        DBL   :DFC9     (8E) OUT
        DBL   :DFC0     (8F) POKE
        DBL   :DFD5     (90) WAIT
        DBL   :DFF7     (91) WAIT MEM
        DBL   :E016     (92) WAIT TIME
        DBL   :E197     (93) LIST <whole program>
        DBL   :E1AA     (94) LIST <linenumber>
        DBL   :E1B6     (95) LIST <part of progr>
        DBL   :E4BC     (96) SOUND
        DBL   :E50C     (97) NOISE
        DBL   :E570     (98) ENVELOPE
        DBL   :E5B2     (99) CURSOR
        DBL   :E5BB     (9A) MODE
        DBL   :E5C1     (9B) DOT
        DBL   :E5CE     (9C) DRAW
        DBL   :E5D7     (9D) FILL
        DBL   :E60E     (9E) COLORT
        DBL   :E615     (9F) COLORG
        DBL   :E302     (A0) INPUT
        DBL   :E2FC     (A1) INPUT <with prompt>
        DBL   :E18F     (A2) DATA
        DBL   :E323     (A3) READ
        DBL   :E45A     (A4) LET
        DBL   :E45A     (A5) assignment
        DBL   :DF20     (A6) IF THEN <statement>
        DBL   :DF15     (A7) IF GOTO
        DBL   :DF15     (A8) IF THEN <linenumber>
        DBL   :E18F     (A9) REM
        DBL   :E02B     (AA) FOR .. TO
        DBL   :E0E5     (AB) NEXT
        DBL   :E0C5     (AC) NEXT <variable>
        DBL   :E2B3     (AD) PRINT
        DBL   :DF6A     (AE) ON GOTO
        DBL   :DF71     (AF) ON GOSUB
        DBL   :E62F     (B0) DIM
        DBL   :DA33     (B1) *** (error line run)
        DBL   :E69E     (B2) UT
        DBL   :E6A4     (B3) CALLM
        DBL   :E6B5     (B4) CLEAR
        DBL   :E195     (B5) IMP
        DBL   :E1F5     (B6) EDIT <total>
        DBL   :E253     (B7) EDIT <linenumber>
        DBL   :E25C     (B8) EDIT <part>
        DBL   :D81D     (B9) SAVEA
        DBL   :D85E     (BA) LOADA
        DBL   :CD64     (BB) TALK
        DBL   :DEFE     (BC) STEP
        DBL   :E6CE     (BD) TRON
        DBL   :E6D5     (BE) TROFF
*
*****************************
* part of RUN 'ASC' (0EACF) *
*****************************
*
MPT51   ORA   A         Nulstring ?
        JZ    :EB7C     (0) Then 0 into MACC
        INX   H         Else:
        JMP   :EAC7     (0) Next byte from MEM
 REM into MACC
*
*****************************************
* TABLE PREFIXES FOR UNITARY OPERATIONS *
*****************************************
*
* Only used by LIST for decoding.
* The prefix gives a code for unitary operators,
* which on encoding are directly determined, not
* looked up in a table.
*
* Format: length of name / name / 5-bit opcode
*
*OPTBB
SBRA    DATA  :01
        DATA  :28       (
        DATA  :1A
*
        DATA  :01
        DATA  :2D       -
        DATA  :1D
*
        DATA  :01
        DATA  :2B       +
        DATA  :1C
*
        DATA  :00       Fixed FPT conversion
        DATA  :1F
*
**************************
* TABLE BINARY OPERATORS *
**************************
*
* Format: 1 byte:  length of name.
*         n bytes: name.
*         1 byte:  code byte:
*                  highest 3 bits: priority.
*                  lowest  5 bits: opcode.
*
*OPTAB
SDIV    DATA  :01
        DATA  :2F       /
        DATA  :C2
*
        DATA  :01
        DATA  :2A       *
        DATA  :C3
*
        DATA  :03
        DATA  :4D       M
        DATA  :4F       O
        DATA  :44       D
        DATA  :CF
*
        DATA  :01
        DATA  :5E       ^
        DATA  :E4
*
        DATA  :04
        DATA  :49       I
        DATA  :41       A
        DATA  :4E       N
        DATA  :44       D
        DATA  :69
*
        DATA  :03
        DATA  :49       I
        DATA  :4F       O
        DATA  :52       R
        DATA  :6A
*
        DATA  :04
        DATA  :49       I
        DATA  :58       X
        DATA  :4F       O
        DATA  :52       R
        DATA  :6C
*
        DATA  :03
        DATA  :53       S
        DATA  :48       H
        DATA  :4C       L
        DATA  :8D
*
        DATA  :03
        DATA  :53       S
        DATA  :48       H
        DATA  :52       R
        DATA  :8E
*
        DATA  :02
        DATA  :3E       >
        DATA  :3D       =
        DATA  :50
*
        DATA  :01
        DATA  :3E       >
        DATA  :51
*
        DATA  :02
        DATA  :3C       <
        DATA  :3E       >
        DATA  :52
*
        DATA  :02
        DATA  :3C       <
        DATA  :3D       =
        DATA  :53
*
        DATA  :01
        DATA  :3C       <
        DATA  :54
*
        DATA  :01
        DATA  :3D       >
        DATA  :55
*
SAND    DATA  :03
        DATA  :41       A
        DATA  :4E       N
        DATA  :44       D
        DATA  :38
*
        DATA  :02
        DATA  :4F       O
        DATA  :52       R
        DATA  :39
*
***************************
* TABLE UNITARY OPERATORS *
***************************
*
* Format: 1 byte:  Length of name.
*         n bytes: Name.
*         1 byte:  Code byte:
*                  3 highest bits: priority.
*                  5 lowest bits:  opcode.
*
OPTBM   DATA  :04
        DATA  :49       I
        DATA  :4E       N
        DATA  :4F       O
        DATA  :54       T
        DATA  :1E
*
        DATA  :01
        DATA  :2B       +
        DATA  :A0
*
        DATA  :01
        DATA  :2D       -
        DATA  :A1
*
        DATA  :00       End of table
        DATA  :00
*
*********************************
* TABLE STRINGS BASIC FUNCTIONS *
*********************************
*
* Format: 1 byte:  Length of name.
*         n bytes: Name.
*         1 byte:  High nibble: type of info.
*                  Low nibble: nr of arguments.
*         1 byte:  High nibble: required type
*                  of variable expected:
*                  (0=FPT, 1=INT, 2=STR).
*
*FUNTB
SABS    DATA  :03
        DATA  :41       A
        DATA  :42       B
        DATA  :53       S
        DATA  :01
        DATA  :00
*
SALOG   DATA  :04
        DATA  :41       A
        DATA  :4C       L
        DATA  :4F       O
        DATA  :47       G
        DATA  :01
        DATA  :00
*
SASC    DATA  :03
        DATA  :41       A
        DATA  :53       S
        DATA  :43       C
        DATA  :11
        DATA  :20
*
SCHR    DATA  :04
        DATA  :43       C
        DATA  :48       H
        DATA  :52       R
        DATA  :24       $
        DATA  :21
        DATA  :10
*
SCURX   DATA  :04
        DATA  :43       C
        DATA  :55       U
        DATA  :52       R
        DATA  :58       X
        DATA  :10
*
SCURY   DATA  :04
        DATA  :43       C
        DATA  :55       U
        DATA  :52       R
        DATA  :59       Y
        DATA  :10
*
SEXP    DATA  :03
        DATA  :45       E
        DATA  :58       X
        DATA  :50       P
        DATA  :01
        DATA  :00
*
SFRAC   DATA  :04
        DATA  :46       F
        DATA  :52       R
        DATA  :41       A
        DATA  :43       C
        DATA  :01
        DATA  :00
*
SFRE    DATA  :03
        DATA  :46       F
        DATA  :52       R
        DATA  :45       E
        DATA  :10
*
SFREQ   DATA  :04
        DATA  :46       F
        DATA  :52       R
        DATA  :45       E
        DATA  :51       Q
        DATA  :11
        DATA  :00
*
SGETC   DATA  :04
        DATA  :47       G
        DATA  :45       E
        DATA  :54       T
        DATA  :43       C
        DATA  :10
*
SHEX    DATA  :04
        DATA  :48       H
        DATA  :45       E
        DATA  :58       X
        DATA  :24       $
        DATA  :21
        DATA  :10
*
SINP    DATA  :03
        DATA  :49       I
        DATA  :4E       N
        DATA  :50       P
        DATA  :11
        DATA  :10
*
SINT    DATA  :03
        DATA  :49       I
        DATA  :4E       N
        DATA  :54       T
        DATA  :01
        DATA  :00
*
SLEFT   DATA  :05
        DATA  :4C       L
        DATA  :45       E
        DATA  :46       F
        DATA  :54       T
        DATA  :24       $
        DATA  :22
        DATA  :20
        DATA  :10
*
SLEN    DATA  :03
        DATA  :4C       L
        DATA  :45       E
        DATA  :4E       N
        DATA  :11
        DATA  :20
*
SVPT    DATA  :06
        DATA  :56       V
        DATA  :41       A
        DATA  :52       R
        DATA  :50       P
        DATA  :54       T
        DATA  :52       R
        DATA  :11
        DATA  :30
*
SLOG    DATA  :03
        DATA  :4C       L
        DATA  :4F       O
        DATA  :47       G
        DATA  :01
        DATA  :00
*
SLOGT   DATA  :04
        DATA  :4C       L
        DATA  :4F       O
        DATA  :47       G
        DATA  :54       T
        DATA  :01
        DATA  :00
*
SXMAX   DATA  :04
        DATA  :58       X
        DATA  :4D       M
        DATA  :41       A
        DATA  :58       X
        DATA  :10
*
SYMAX   DATA  :04
        DATA  :59       Y
        DATA  :4D       M
        DATA  :41       A
        DATA  :58       X
        DATA  :10
*
SMID    DATA  :04
        DATA  :4D       M
        DATA  :49       I
        DATA  :44       D
        DATA  :24       $
        DATA  :23
        DATA  :20
        DATA  :10
        DATA  :10
*
SPDL    DATA  :03
        DATA  :50       P
        DATA  :44       D
        DATA  :4C       L
        DATA  :11
        DATA  :10
*
SPEEK   DATA  :04
        DATA  :50       P
        DATA  :45       E
        DATA  :45       E
        DATA  :4B       K
        DATA  :11
        DATA  :10
*
SPI     DATA  :02
        DATA  :50       P
        DATA  :49       I
        DATA  :00
*
SRIGHT  DATA  :06
        DATA  :52       R
        DATA  :49       I
        DATA  :47       G
        DATA  :48       H
        DATA  :54       T
        DATA  :24       $
        DATA  :22
        DATA  :20
        DATA  :10
*
SRND    DATA  :03
        DATA  :52       R
        DATA  :4E       N
        DATA  :44       D
        DATA  :01
        DATA  :00
*
SSCRN   DATA  :04
        DATA  :53       S
        DATA  :43       C
        DATA  :52       R
        DATA  :4E       N
        DATA  :12
        DATA  :10
        DATA  :10
*
SSGN    DATA  :03
        DATA  :53       S
        DATA  :47       G
        DATA  :4E       N
        DATA  :01
        DATA  :00
*
SSPC    DATA  :03
        DATA  :53       S
        DATA  :50       P
        DATA  :43       C
        DATA  :21
        DATA  :10
*
SSQR    DATA  :03
        DATA  :53       S
        DATA  :51       Q
        DATA  :52       R
        DATA  :01
        DATA  :00
*
SSTR    DATA  :04
        DATA  :53       S
        DATA  :54       T
        DATA  :52       R
        DATA  :24       $
        DATA  :21
        DATA  :00
*
STAB    DATA  :03
        DATA  :54       T
        DATA  :41       A
        DATA  :42       B
        DATA  :21
        DATA  :10
*
SVAL    DATA  :03
        DATA  :56       V
        DATA  :41       A
        DATA  :4C       L
        DATA  :01
        DATA  :20
*
SSIN    DATA  :03
        DATA  :53       S
        DATA  :49       I
        DATA  :4E       N
        DATA  :01
        DATA  :00
*
SCOS    DATA  :03
        DATA  :43       C
        DATA  :4F       O
        DATA  :53       S
        DATA  :01
        DATA  :00
*
STAN    DATA  :03
        DATA  :54       T
        DATA  :41       A
        DATA  :4E       N
        DATA  :01
        DATA  :00
*
SASIN   DATA  :04
        DATA  :41       A
        DATA  :53       S
        DATA  :49       I
        DATA  :4E       N
        DATA  :01
        DATA  :00
*
SACOS   DATA  :04
        DATA  :41       A
        DATA  :43       C
        DATA  :4F       O
        DATA  :53       S
        DATA  :01
        DATA  :00
*
SATN    DATA  :03
        DATA  :41       A
        DATA  :54       T
        DATA  :4E       N
        DATA  :01
        DATA  :00
*
        DATA  :00       End of table
*
********
* DATA *
********
*
*ENDFT
FPOSC   DATA  :15       Sound constant
        DATA  :F4
        DATA  :24
        DATA  :00
*
FPM1    DATA  :81       FPT (-1)
        DATA  :80
        DATA  :00
        DATA  :00
*
FPPI    DATA  :02       FPT (PI)
        DATA  :C9
        DATA  :0F
        DATA  :DB
*
I4      DATA  :00       INT (4)  (not used)
        DATA  :00
        DATA  :00
        DATA  :04
*
IRAND   DATA  :00       AND mask
        DATA  :FF
        DATA  :FF
        DATA  :FF
*
*
*
        UNL
ENDFT   EQU FPOSC
FUNTB   EQU SABS
OPTAB   EQU SDIV
OPTBB   EQU SBRA
        LST
        END
